home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / kcl.lha / lsp / packlib.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  20KB  |  926 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "packlib.h"
  5. init_packlib(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     base[0]= VV[0];
  9.     (void)simple_symlispcall_no_event(VV[32],base+0,1);
  10.     MM(VV[9],L2,start,size,data);
  11.     MF(VV[33],L3,start,size,data);
  12.     MM(VV[34],L4,start,size,data);
  13.     MM(VV[35],L5,start,size,data);
  14.     MM(VV[36],L6,start,size,data);
  15.     MF(VV[37],L7,start,size,data);
  16.     MF(VV[38],L8,start,size,data);
  17.     MF(VV[39],L9,start,size,data);
  18.     MF(VV[40],L10,start,size,data);
  19.     vs_top=vs_base=base;
  20. }
  21. /*    macro definition for COERCE-TO-PACKAGE    */
  22.  
  23. static L2()
  24. {    register object *base=vs_base;
  25.     register object *sup=base+VM3;
  26.     vs_reserve(VM3);
  27.     check_arg(2);
  28.     vs_top=sup;
  29.     {object V1=base[0]->c.c_cdr;
  30.     if(endp(V1))invalid_macro_call();
  31.     base[2]= (V1->c.c_car);
  32.     V1=V1->c.c_cdr;
  33.     if(!endp(V1))invalid_macro_call();}
  34.     if(!(base[2]==VV[1])){
  35.     goto T4;}
  36.     vs_top=(vs_base=base+2)+1;
  37.     return;
  38. T4:;
  39.     vs_base=vs_top;
  40.     Lgensym();
  41.     vs_top=sup;
  42.     base[3]= vs_base[0];
  43.     base[4]= list(2,base[3],base[2]);
  44.     base[5]= make_cons(base[4],Cnil);
  45.     base[6]= list(2,VV[4],base[3]);
  46.     base[7]= list(2,VV[6],base[3]);
  47.     base[8]= list(2,VV[5],base[7]);
  48.     base[9]= list(4,VV[3],base[6],base[3],base[8]);
  49.     base[10]= list(3,VV[2],base[5],base[9]);
  50.     vs_top=(vs_base=base+10)+1;
  51.     return;
  52. }
  53. /*    function definition for FIND-ALL-SYMBOLS    */
  54.  
  55. static L3()
  56. {    register object *base=vs_base;
  57.     register object *sup=base+VM4;
  58.     vs_reserve(VM4);
  59.     check_arg(1);
  60.     vs_top=sup;
  61. TTL:;
  62.     if(!(type_of(base[0])==t_symbol)){
  63.     goto T7;}
  64.     base[1]= base[0];
  65.     vs_top=(vs_base=base+1)+1;
  66.     Lsymbol_name();
  67.     vs_top=sup;
  68.     base[0]= vs_base[0];
  69. T7:;
  70.     vs_base=vs_top;
  71.     Llist_all_packages();
  72.     vs_top=sup;
  73.     base[2]= vs_base[0];
  74.     {object V2;
  75.     object V3= base[2];
  76.     if(endp(V3)){
  77.     base[3]= Cnil;
  78.     vs_top=(vs_base=base+3)+1;
  79.     return;}
  80.     base[1]=V2=MMcons(Cnil,Cnil);
  81. T12:;
  82.     base[5]= base[0];
  83.     base[6]= (V3->c.c_car);
  84.     vs_top=(vs_base=base+5)+2;
  85.     Lfind_symbol();
  86.     Llist();
  87.     vs_top=sup;
  88.     base[4]= vs_base[0];
  89.     base[5]= car(base[4]);
  90.     base[6]= cadr(base[4]);
  91.     if(base[6]==VV[7]){
  92.     goto T21;}
  93.     if(!(base[6]==VV[8])){
  94.     goto T22;}
  95. T21:;
  96.     (V2->c.c_cdr)= make_cons(base[5],Cnil);
  97.     goto T14;
  98. T22:;
  99.     (V2->c.c_cdr)= Cnil;
  100. T14:;
  101.     while(!endp(MMcdr(V2)))V2=MMcdr(V2);
  102.     if(endp(V3=MMcdr(V3))){
  103.     base[1]=base[1]->c.c_cdr;
  104.     vs_top=(vs_base=base+1)+1;
  105.     return;}
  106.     goto T12;}
  107. }
  108. /*    macro definition for DO-SYMBOLS    */
  109.  
  110. static L4()
  111. {    register object *base=vs_base;
  112.     register object *sup=base+VM5;
  113.     vs_reserve(VM5);
  114.     check_arg(2);
  115.     vs_top=sup;
  116.     {object V4=base[0]->c.c_cdr;
  117.     if(endp(V4))invalid_macro_call();
  118.     {object V5= (V4->c.c_car);
  119.     if(endp(V5))invalid_macro_call();
  120.     base[2]= (V5->c.c_car);
  121.     V5=V5->c.c_cdr;
  122.     if(endp(V5)){
  123.     base[3]= VV[1];
  124.     } else {
  125.     base[3]= (V5->c.c_car);
  126.     V5=V5->c.c_cdr;}
  127.     if(endp(V5)){
  128.     base[4]= Cnil;
  129.     } else {
  130.     base[4]= (V5->c.c_car);
  131.     V5=V5->c.c_cdr;}
  132.     if(!endp(V5))invalid_macro_call();}
  133.     V4=V4->c.c_cdr;
  134.     base[5]= V4;}
  135.     vs_base=vs_top;
  136.     Lgensym();
  137.     vs_top=sup;
  138.     base[6]= vs_base[0];
  139.     vs_base=vs_top;
  140.     Lgensym();
  141.     vs_top=sup;
  142.     base[7]= vs_base[0];
  143.     vs_base=vs_top;
  144.     Lgensym();
  145.     vs_top=sup;
  146.     base[8]= vs_base[0];
  147.     vs_base=vs_top;
  148.     Lgensym();
  149.     vs_top=sup;
  150.     base[9]= vs_base[0];
  151.     vs_base=vs_top;
  152.     Lgensym();
  153.     vs_top=sup;
  154.     base[10]= vs_base[0];
  155.     base[11]= Cnil;
  156.     base[12]= base[5];
  157.     symlispcall_no_event(VV[41],base+12,1);
  158.     if(vs_base<vs_top){
  159.     base[11]= vs_base[0];
  160.     vs_base++;
  161.     }else{
  162.     base[11]= Cnil;}
  163.     if(vs_base<vs_top){
  164.     base[5]= vs_base[0];
  165.     }else{
  166.     base[5]= Cnil;}
  167.     vs_top=sup;
  168.     base[12]= list(2,VV[9],base[3]);
  169.     base[13]= list(2,base[6],base[12]);
  170.     base[14]= list(3,base[13],base[2],base[8]);
  171.     base[15]= list(3,VV[13],base[2],Cnil);
  172.     base[16]= list(3,VV[12],base[15],base[4]);
  173.     base[17]= list(3,base[7],VV[11],base[16]);
  174.     base[18]= list(3,VV[14],base[7],VV[15]);
  175.     base[19]= list(3,VV[16],base[6],base[7]);
  176.     base[20]= list(3,VV[18],base[7],VV[15]);
  177.     base[21]= list(3,VV[17],base[6],base[20]);
  178.     base[22]= list(4,VV[3],base[18],base[19],base[21]);
  179.     base[23]= list(3,VV[13],base[8],base[22]);
  180.     base[24]= list(2,VV[20],base[8]);
  181.     base[25]= list(2,VV[21],base[10]);
  182.     base[26]= list(3,VV[19],base[24],base[25]);
  183.     base[27]= list(2,VV[22],base[8]);
  184.     base[28]= list(3,VV[13],base[2],base[27]);
  185.     base[29]= list(2,VV[23],base[8]);
  186.     base[30]= list(3,VV[13],base[8],base[29]);
  187.     base[31]= list(2,VV[21],base[9]);
  188.     base[32]= list(3,base[30],base[31],base[10]);
  189.     base[33]= append(base[5],base[32]);
  190.     base[34]= listA(7,VV[10],base[17],base[23],base[9],base[26],base[28],base[33]);
  191.     base[35]= make_cons(base[34],Cnil);
  192.     base[36]= append(base[11],base[35]);
  193.     base[37]= listA(3,VV[2],base[14],base[36]);
  194.     vs_top=(vs_base=base+37)+1;
  195.     return;
  196. }
  197. /*    macro definition for DO-EXTERNAL-SYMBOLS    */
  198.  
  199. static L5()
  200. {    register object *base=vs_base;
  201.     register object *sup=base+VM6;
  202.     vs_reserve(VM6);
  203.     check_arg(2);
  204.     vs_top=sup;
  205.     {object V6=base[0]->c.c_cdr;
  206.     if(endp(V6))invalid_macro_call();
  207.     {object V7= (V6->c.c_car);
  208.     if(endp(V7))invalid_macro_call();
  209.     base[2]= (V7->c.c_car);
  210.     V7=V7->c.c_cdr;
  211.     if(endp(V7)){
  212.     base[3]= VV[1];
  213.     } else {
  214.     base[3]= (V7->c.c_car);
  215.     V7=V7->c.c_cdr;}
  216.     if(endp(V7)){
  217.     base[4]= Cnil;
  218.     } else {
  219.     base[4]= (V7->c.c_car);
  220.     V7=V7->c.c_cdr;}
  221.     if(!endp(V7))invalid_macro_call();}
  222.     V6=V6->c.c_cdr;
  223.     base[5]= V6;}
  224.     vs_base=vs_top;
  225.     Lgensym();
  226.     vs_top=sup;
  227.     base[6]= vs_base[0];
  228.     vs_base=vs_top;
  229.     Lgensym();
  230.     vs_top=sup;
  231.     base[7]= vs_base[0];
  232.     vs_base=vs_top;
  233.     Lgensym();
  234.     vs_top=sup;
  235.     base[8]= vs_base[0];
  236.     vs_base=vs_top;
  237.     Lgensym();
  238.     vs_top=sup;
  239.     base[9]= vs_base[0];
  240.     vs_base=vs_top;
  241.     Lgensym();
  242.     vs_top=sup;
  243.     base[10]= vs_base[0];
  244.     base[11]= Cnil;
  245.     base[12]= base[5];
  246.     symlispcall_no_event(VV[41],base+12,1);
  247.     if(vs_base<vs_top){
  248.     base[11]= vs_base[0];
  249.     vs_base++;
  250.     }else{
  251.     base[11]= Cnil;}
  252.     if(vs_base<vs_top){
  253.     base[5]= vs_base[0];
  254.     }else{
  255.     base[5]= Cnil;}
  256.     vs_top=sup;
  257.     base[12]= list(2,VV[9],base[3]);
  258.     base[13]= list(2,base[6],base[12]);
  259.     base[14]= list(3,base[13],base[2],base[8]);
  260.     base[15]= list(3,VV[13],base[2],Cnil);
  261.     base[16]= list(3,VV[12],base[15],base[4]);
  262.     base[17]= list(3,base[7],VV[15],base[16]);
  263.     base[18]= list(3,VV[17],base[6],base[7]);
  264.     base[19]= list(3,VV[13],base[8],base[18]);
  265.     base[20]= list(2,VV[20],base[8]);
  266.     base[21]= list(2,VV[21],base[10]);
  267.     base[22]= list(3,VV[19],base[20],base[21]);
  268.     base[23]= list(2,VV[22],base[8]);
  269.     base[24]= list(3,VV[13],base[2],base[23]);
  270.     base[25]= list(2,VV[23],base[8]);
  271.     base[26]= list(3,VV[13],base[8],base[25]);
  272.     base[27]= list(2,VV[21],base[9]);
  273.     base[28]= list(3,base[26],base[27],base[10]);
  274.     base[29]= append(base[5],base[28]);
  275.     base[30]= listA(7,VV[10],base[17],base[19],base[9],base[22],base[24],base[29]);
  276.     base[31]= make_cons(base[30],Cnil);
  277.     base[32]= append(base[11],base[31]);
  278.     base[33]= listA(3,VV[2],base[14],base[32]);
  279.     vs_top=(vs_base=base+33)+1;
  280.     return;
  281. }
  282. /*    macro definition for DO-ALL-SYMBOLS    */
  283.  
  284. static L6()
  285. {    register object *base=vs_base;
  286.     register object *sup=base+VM7;
  287.     vs_reserve(VM7);
  288.     check_arg(2);
  289.     vs_top=sup;
  290.     {object V8=base[0]->c.c_cdr;
  291.     if(endp(V8))invalid_macro_call();
  292.     {object V9= (V8->c.c_car);
  293.     if(endp(V9))invalid_macro_call();
  294.     base[2]= (V9->c.c_car);
  295.     V9=V9->c.c_cdr;
  296.     if(endp(V9)){
  297.     base[3]= Cnil;
  298.     } else {
  299.     base[3]= (V9->c.c_car);
  300.     V9=V9->c.c_cdr;}
  301.     if(!endp(V9))invalid_macro_call();}
  302.     V8=V8->c.c_cdr;
  303.     base[4]= V8;}
  304.     vs_base=vs_top;
  305.     Lgensym();
  306.     vs_top=sup;
  307.     base[5]= vs_base[0];
  308.     vs_base=vs_top;
  309.     Lgensym();
  310.     vs_top=sup;
  311.     base[6]= vs_base[0];
  312.     vs_base=vs_top;
  313.     Lgensym();
  314.     vs_top=sup;
  315.     base[7]= vs_base[0];
  316.     vs_base=vs_top;
  317.     Lgensym();
  318.     vs_top=sup;
  319.     base[8]= vs_base[0];
  320.     vs_base=vs_top;
  321.     Lgensym();
  322.     vs_top=sup;
  323.     base[9]= vs_base[0];
  324.     vs_base=vs_top;
  325.     Lgensym();
  326.     vs_top=sup;
  327.     base[10]= vs_base[0];
  328.     vs_base=vs_top;
  329.     Lgensym();
  330.     vs_top=sup;
  331.     base[11]= vs_base[0];
  332.     base[12]= Cnil;
  333.     base[13]= base[4];
  334.     symlispcall_no_event(VV[41],base+13,1);
  335.     if(vs_base<vs_top){
  336.     base[12]= vs_base[0];
  337.     vs_base++;
  338.     }else{
  339.     base[12]= Cnil;}
  340.     if(vs_base<vs_top){
  341.     base[4]= vs_base[0];
  342.     }else{
  343.     base[4]= Cnil;}
  344.     vs_top=sup;
  345.     base[13]= list(2,VV[23],base[5]);
  346.     base[14]= list(3,base[5],VV[25],base[13]);
  347.     base[15]= make_cons(base[2],Cnil);
  348.     base[16]= make_cons(base[6],VV[26]);
  349.     base[17]= make_cons(base[7],Cnil);
  350.     base[18]= list(4,base[14],base[15],base[16],base[17]);
  351.     base[19]= list(2,VV[20],base[5]);
  352.     base[20]= list(3,VV[13],base[2],Cnil);
  353.     base[21]= list(3,base[19],base[20],base[3]);
  354.     base[22]= list(3,VV[27],base[6],VV[11]);
  355.     base[23]= list(2,VV[21],base[9]);
  356.     base[24]= list(3,VV[19],base[22],base[23]);
  357.     base[25]= list(3,VV[14],base[6],VV[15]);
  358.     base[26]= list(2,VV[22],base[5]);
  359.     base[27]= list(3,VV[16],base[26],base[6]);
  360.     base[28]= list(2,VV[22],base[5]);
  361.     base[29]= list(3,VV[18],base[6],VV[15]);
  362.     base[30]= list(3,VV[17],base[28],base[29]);
  363.     base[31]= list(4,VV[3],base[25],base[27],base[30]);
  364.     base[32]= list(3,VV[13],base[7],base[31]);
  365.     base[33]= list(2,VV[20],base[7]);
  366.     base[34]= list(2,VV[21],base[11]);
  367.     base[35]= list(3,VV[19],base[33],base[34]);
  368.     base[36]= list(2,VV[22],base[7]);
  369.     base[37]= list(3,VV[13],base[2],base[36]);
  370.     base[38]= list(2,VV[23],base[7]);
  371.     base[39]= list(3,VV[13],base[7],base[38]);
  372.     base[40]= list(2,VV[21],base[10]);
  373.     base[41]= list(2,VV[28],base[6]);
  374.     base[42]= list(3,VV[13],base[6],base[41]);
  375.     base[43]= list(2,VV[21],base[8]);
  376.     base[44]= list(6,base[39],base[40],base[11],base[42],base[43],base[9]);
  377.     base[45]= append(base[4],base[44]);
  378.     base[46]= listA(7,base[8],base[24],base[32],base[10],base[35],base[37],base[45]);
  379.     base[47]= append(base[12],base[46]);
  380.     base[48]= listA(4,VV[24],base[18],base[21],base[47]);
  381.     vs_top=(vs_base=base+48)+1;
  382.     return;
  383. }
  384. /*    function definition for SUBSTRINGP    */
  385.  
  386. static L7()
  387. {    register object *base=vs_base;
  388.     register object *sup=base+VM8;
  389.     vs_reserve(VM8);
  390.     check_arg(2);
  391.     vs_top=sup;
  392. TTL:;
  393.     base[5]= make_fixnum(length(base[1]));
  394.     base[6]= make_fixnum(length(base[0]));
  395.     base[2]= number_minus(base[5],base[6]);
  396.     base[3]= make_fixnum(length(base[0]));
  397.     base[4]= VV[29];
  398. T60:;
  399.     if(!(number_compare(base[4],base[2])>0)){
  400.     goto T61;}
  401.     base[5]= Cnil;
  402.     vs_top=(vs_base=base+5)+1;
  403.     return;
  404. T61:;
  405.     base[5]= base[0];
  406.     base[6]= base[1];
  407.     base[7]= VV[30];
  408.     base[8]= base[4];
  409.     base[9]= VV[31];
  410.     base[10]= number_plus(base[4],base[3]);
  411.     vs_top=(vs_base=base+5)+6;
  412.     Lstring_equal();
  413.     vs_top=sup;
  414.     if((vs_base[0])==Cnil){
  415.     goto T65;}
  416.     base[5]= Ct;
  417.     vs_top=(vs_base=base+5)+1;
  418.     return;
  419. T65:;
  420.     base[4]= one_plus(base[4]);
  421.     goto T60;
  422. }
  423. /*    function definition for PRINT-SYMBOL-APROPOS    */
  424.  
  425. static L8()
  426. {    register object *base=vs_base;
  427.     register object *sup=base+VM9;
  428.     vs_reserve(VM9);
  429.     check_arg(1);
  430.     vs_top=sup;
  431. TTL:;
  432.     (void)(prin1(base[0],Cnil));
  433.     base[1]= base[0];
  434.     vs_top=(vs_base=base+1)+1;
  435.     Lfboundp();
  436.     vs_top=sup;
  437.     if((vs_base[0])==Cnil){
  438.     goto T78;}
  439.     base[1]= base[0];
  440.     vs_top=(vs_base=base+1)+1;
  441.     Lspecial_form_p();
  442.     vs_top=sup;
  443.     if((vs_base[0])==Cnil){
  444.     goto T83;}
  445.     princ_str("  Special form",Cnil);
  446.     goto T78;
  447. T83:;
  448.     base[1]= base[0];
  449.     vs_top=(vs_base=base+1)+1;
  450.     Lmacro_function();
  451.     vs_top=sup;
  452.     if((vs_base[0])==Cnil){
  453.     goto T87;}
  454.     princ_str("  Macro",Cnil);
  455.     goto T78;
  456. T87:;
  457.     princ_str("  Function",Cnil);
  458. T78:;
  459.     base[1]= base[0];
  460.     vs_top=(vs_base=base+1)+1;
  461.     Lboundp();
  462.     vs_top=sup;
  463.     if((vs_base[0])==Cnil){
  464.     goto T90;}
  465.     base[1]= base[0];
  466.     vs_top=(vs_base=base+1)+1;
  467.     Lconstantp();
  468.     vs_top=sup;
  469.     if((vs_base[0])==Cnil){
  470.     goto T96;}
  471.     princ_str("  Constant: ",Cnil);
  472.     goto T94;
  473. T96:;
  474.     princ_str("  has value: ",Cnil);
  475. T94:;
  476.     base[2]= base[0];
  477.     vs_top=(vs_base=base+2)+1;
  478.     Lsymbol_value();
  479.     vs_top=sup;
  480.     base[1]= vs_base[0];
  481.     (void)(prin1(base[1],Cnil));
  482. T90:;
  483.     base[1]= terpri(Cnil);
  484.     vs_top=(vs_base=base+1)+1;
  485.     return;
  486. }
  487. /*    function definition for APROPOS    */
  488.  
  489. static L9()
  490. {    register object *base=vs_base;
  491.     register object *sup=base+VM10;
  492.     vs_reserve(VM10);
  493.     if(vs_top-vs_base<1) too_few_arguments();
  494.     if(vs_top-vs_base>2) too_many_arguments();
  495.     vs_base=vs_base+1;
  496.     if(vs_base>=vs_top){vs_top=sup;goto T101;}
  497.     vs_top=sup;
  498.     goto T102;
  499. T101:;
  500.     base[1]= Cnil;
  501. T102:;
  502.     base[0]= coerce_to_string(base[0]);
  503.     if((base[1])==Cnil){
  504.     goto T108;}
  505.     base[6]= base[1];
  506.     vs_top=(vs_base=base+6)+1;
  507.     Lpackagep();
  508.     vs_top=sup;
  509.     if((vs_base[0])==Cnil){
  510.     goto T113;}
  511.     base[2]= base[1];
  512.     goto T111;
  513. T113:;
  514.     base[6]= coerce_to_string(base[1]);
  515.     vs_top=(vs_base=base+6)+1;
  516.     Lfind_package();
  517.     vs_top=sup;
  518.     base[2]= vs_base[0];
  519. T111:;
  520.     base[3]= Cnil;
  521.     base[4]= Cnil;
  522.     base[5]= VV[29];
  523. T118:;
  524.     if(!(number_compare(base[5],VV[11])>=0)){
  525.     goto T119;}
  526.     base[3]= Cnil;
  527.     goto T110;
  528. T119:;
  529.     if(!(number_compare(base[5],VV[15])<0)){
  530.     goto T130;}
  531.     base[6]= base[2];
  532.     base[7]= base[5];
  533.     vs_top=(vs_base=base+6)+2;
  534.     siLpackage_internal();
  535.     vs_top=sup;
  536.     base[4]= vs_base[0];
  537.     goto T128;
  538. T130:;
  539.     base[6]= base[2];
  540.     base[7]= number_minus(base[5],VV[15]);
  541.     vs_top=(vs_base=base+6)+2;
  542.     siLpackage_external();
  543.     vs_top=sup;
  544.     base[4]= vs_base[0];
  545. T128:;
  546. T126:;
  547.     if((base[4])!=Cnil){
  548.     goto T136;}
  549.     goto T127;
  550. T136:;
  551.     base[3]= car(base[4]);
  552.     base[6]= base[0];
  553.     base[7]= coerce_to_string(base[3]);
  554.     vs_top=(vs_base=base+6)+2;
  555.     L7();
  556.     vs_top=sup;
  557.     if((vs_base[0])==Cnil){
  558.     goto T141;}
  559.     base[6]= base[3];
  560.     vs_top=(vs_base=base+6)+1;
  561.     L8();
  562.     vs_top=sup;
  563. T141:;
  564.     base[4]= cdr(base[4]);
  565.     goto T126;
  566. T127:;
  567.     base[5]= one_plus(base[5]);
  568.     goto T118;
  569. T110:;
  570.     base[3]= base[1];
  571.     vs_top=(vs_base=base+3)+1;
  572.     Lpackage_use_list();
  573.     vs_top=sup;
  574.     base[2]= vs_base[0];
  575. T155:;
  576.     if((base[2])!=Cnil){
  577.     goto T156;}
  578.     goto T106;
  579. T156:;
  580.     base[6]= car(base[2]);
  581.     base[7]= base[6];
  582.     vs_top=(vs_base=base+7)+1;
  583.     Lpackagep();
  584.     vs_top=sup;
  585.     if((vs_base[0])==Cnil){
  586.     goto T164;}
  587.     base[3]= base[6];
  588.     goto T161;
  589. T164:;
  590.     base[7]= coerce_to_string(base[6]);
  591.     vs_top=(vs_base=base+7)+1;
  592.     Lfind_package();
  593.     vs_top=sup;
  594.     base[3]= vs_base[0];
  595. T161:;
  596.     base[4]= Cnil;
  597.     base[5]= Cnil;
  598.     base[6]= VV[29];
  599. T169:;
  600.     if(!(number_compare(base[6],VV[15])>=0)){
  601.     goto T170;}
  602.     base[4]= Cnil;
  603.     goto T160;
  604. T170:;
  605.     base[7]= base[3];
  606.     base[8]= base[6];
  607.     vs_top=(vs_base=base+7)+2;
  608.     siLpackage_external();
  609.     vs_top=sup;
  610.     base[5]= vs_base[0];
  611. T177:;
  612.     if((base[5])!=Cnil){
  613.     goto T182;}
  614.     goto T178;
  615. T182:;
  616.     base[4]= car(base[5]);
  617.     base[7]= base[0];
  618.     base[8]= coerce_to_string(base[4]);
  619.     vs_top=(vs_base=base+7)+2;
  620.     L7();
  621.     vs_top=sup;
  622.     if((vs_base[0])==Cnil){
  623.     goto T187;}
  624.     base[7]= base[4];
  625.     vs_top=(vs_base=base+7)+1;
  626.     L8();
  627.     vs_top=sup;
  628. T187:;
  629.     base[5]= cdr(base[5]);
  630.     goto T177;
  631. T178:;
  632.     base[6]= one_plus(base[6]);
  633.     goto T169;
  634. T160:;
  635.     base[2]= cdr(base[2]);
  636.     goto T155;
  637. T108:;
  638.     vs_base=vs_top;
  639.     Llist_all_packages();
  640.     vs_top=sup;
  641.     base[2]= vs_base[0];
  642.     base[3]= Cnil;
  643.     base[4]= VV[29];
  644.     base[5]= Cnil;
  645. T203:;
  646.     if((base[2])!=Cnil){
  647.     goto T204;}
  648.     base[3]= Cnil;
  649.     goto T106;
  650. T204:;
  651. T211:;
  652.     if(!(number_compare(base[4],VV[11])>=0)){
  653.     goto T215;}
  654.     goto T214;
  655. T215:;
  656.     if(!(number_compare(base[4],VV[15])<0)){
  657.     goto T220;}
  658.     base[6]= car(base[2]);
  659.     base[7]= base[4];
  660.     vs_top=(vs_base=base+6)+2;
  661.     siLpackage_internal();
  662.     vs_top=sup;
  663.     base[5]= vs_base[0];
  664.     goto T218;
  665. T220:;
  666.     base[6]= car(base[2]);
  667.     base[7]= number_minus(base[4],VV[15]);
  668.     vs_top=(vs_base=base+6)+2;
  669.     siLpackage_external();
  670.     vs_top=sup;
  671.     base[5]= vs_base[0];
  672. T218:;
  673. T212:;
  674.     if((base[5])!=Cnil){
  675.     goto T226;}
  676.     goto T213;
  677. T226:;
  678.     base[3]= car(base[5]);
  679.     base[6]= base[0];
  680.     base[7]= coerce_to_string(base[3]);
  681.     vs_top=(vs_base=base+6)+2;
  682.     L7();
  683.     vs_top=sup;
  684.     if((vs_base[0])==Cnil){
  685.     goto T231;}
  686.     base[6]= base[3];
  687.     vs_top=(vs_base=base+6)+1;
  688.     L8();
  689.     vs_top=sup;
  690. T231:;
  691.     base[5]= cdr(base[5]);
  692.     goto T212;
  693. T213:;
  694.     base[4]= one_plus(base[4]);
  695.     goto T211;
  696. T214:;
  697.     base[2]= cdr(base[2]);
  698.     base[4]= VV[29];
  699.     goto T203;
  700. T106:;
  701.     vs_base=base+2;vs_top=base+2;
  702.     vs_base[0]=Cnil;
  703.     return;
  704. }
  705. /*    function definition for APROPOS-LIST    */
  706.  
  707. static L10()
  708. {    register object *base=vs_base;
  709.     register object *sup=base+VM11;
  710.     vs_reserve(VM11);
  711.     if(vs_top-vs_base<1) too_few_arguments();
  712.     if(vs_top-vs_base>2) too_many_arguments();
  713.     vs_base=vs_base+1;
  714.     if(vs_base>=vs_top){vs_top=sup;goto T245;}
  715.     vs_top=sup;
  716.     goto T246;
  717. T245:;
  718.     base[1]= Cnil;
  719. T246:;
  720.     base[2]= Cnil;
  721.     base[2]= Cnil;
  722.     base[0]= coerce_to_string(base[0]);
  723.     if((base[1])==Cnil){
  724.     goto T254;}
  725.     base[7]= base[1];
  726.     vs_top=(vs_base=base+7)+1;
  727.     Lpackagep();
  728.     vs_top=sup;
  729.     if((vs_base[0])==Cnil){
  730.     goto T259;}
  731.     base[3]= base[1];
  732.     goto T257;
  733. T259:;
  734.     base[7]= coerce_to_string(base[1]);
  735.     vs_top=(vs_base=base+7)+1;
  736.     Lfind_package();
  737.     vs_top=sup;
  738.     base[3]= vs_base[0];
  739. T257:;
  740.     base[4]= Cnil;
  741.     base[5]= Cnil;
  742.     base[6]= VV[29];
  743. T264:;
  744.     if(!(number_compare(base[6],VV[11])>=0)){
  745.     goto T265;}
  746.     base[4]= Cnil;
  747.     goto T256;
  748. T265:;
  749.     if(!(number_compare(base[6],VV[15])<0)){
  750.     goto T276;}
  751.     base[7]= base[3];
  752.     base[8]= base[6];
  753.     vs_top=(vs_base=base+7)+2;
  754.     siLpackage_internal();
  755.     vs_top=sup;
  756.     base[5]= vs_base[0];
  757.     goto T274;
  758. T276:;
  759.     base[7]= base[3];
  760.     base[8]= number_minus(base[6],VV[15]);
  761.     vs_top=(vs_base=base+7)+2;
  762.     siLpackage_external();
  763.     vs_top=sup;
  764.     base[5]= vs_base[0];
  765. T274:;
  766. T272:;
  767.     if((base[5])!=Cnil){
  768.     goto T282;}
  769.     goto T273;
  770. T282:;
  771.     base[4]= car(base[5]);
  772.     base[7]= base[0];
  773.     base[8]= coerce_to_string(base[4]);
  774.     vs_top=(vs_base=base+7)+2;
  775.     L7();
  776.     vs_top=sup;
  777.     if((vs_base[0])==Cnil){
  778.     goto T287;}
  779.     base[2]= make_cons(base[4],base[2]);
  780. T287:;
  781.     base[5]= cdr(base[5]);
  782.     goto T272;
  783. T273:;
  784.     base[6]= one_plus(base[6]);
  785.     goto T264;
  786. T256:;
  787.     base[4]= base[1];
  788.     vs_top=(vs_base=base+4)+1;
  789.     Lpackage_use_list();
  790.     vs_top=sup;
  791.     base[3]= vs_base[0];
  792. T301:;
  793.     if((base[3])!=Cnil){
  794.     goto T302;}
  795.     goto T252;
  796. T302:;
  797.     base[7]= car(base[3]);
  798.     base[8]= base[7];
  799.     vs_top=(vs_base=base+8)+1;
  800.     Lpackagep();
  801.     vs_top=sup;
  802.     if((vs_base[0])==Cnil){
  803.     goto T310;}
  804.     base[4]= base[7];
  805.     goto T307;
  806. T310:;
  807.     base[8]= coerce_to_string(base[7]);
  808.     vs_top=(vs_base=base+8)+1;
  809.     Lfind_package();
  810.     vs_top=sup;
  811.     base[4]= vs_base[0];
  812. T307:;
  813.     base[5]= Cnil;
  814.     base[6]= Cnil;
  815.     base[7]= VV[29];
  816. T315:;
  817.     if(!(number_compare(base[7],VV[11])>=0)){
  818.     goto T316;}
  819.     base[5]= Cnil;
  820.     goto T306;
  821. T316:;
  822.     if(!(number_compare(base[7],VV[15])<0)){
  823.     goto T327;}
  824.     base[8]= base[4];
  825.     base[9]= base[7];
  826.     vs_top=(vs_base=base+8)+2;
  827.     siLpackage_internal();
  828.     vs_top=sup;
  829.     base[6]= vs_base[0];
  830.     goto T325;
  831. T327:;
  832.     base[8]= base[4];
  833.     base[9]= number_minus(base[7],VV[15]);
  834.     vs_top=(vs_base=base+8)+2;
  835.     siLpackage_external();
  836.     vs_top=sup;
  837.     base[6]= vs_base[0];
  838. T325:;
  839. T323:;
  840.     if((base[6])!=Cnil){
  841.     goto T333;}
  842.     goto T324;
  843. T333:;
  844.     base[5]= car(base[6]);
  845.     base[8]= base[0];
  846.     base[9]= coerce_to_string(base[5]);
  847.     vs_top=(vs_base=base+8)+2;
  848.     L7();
  849.     vs_top=sup;
  850.     if((vs_base[0])==Cnil){
  851.     goto T338;}
  852.     base[2]= make_cons(base[5],base[2]);
  853. T338:;
  854.     base[6]= cdr(base[6]);
  855.     goto T323;
  856. T324:;
  857.     base[7]= one_plus(base[7]);
  858.     goto T315;
  859. T306:;
  860.     base[3]= cdr(base[3]);
  861.     goto T301;
  862. T254:;
  863.     vs_base=vs_top;
  864.     Llist_all_packages();
  865.     vs_top=sup;
  866.     base[3]= vs_base[0];
  867.     base[4]= Cnil;
  868.     base[5]= VV[29];
  869.     base[6]= Cnil;
  870. T354:;
  871.     if((base[3])!=Cnil){
  872.     goto T355;}
  873.     base[4]= Cnil;
  874.     goto T252;
  875. T355:;
  876. T362:;
  877.     if(!(number_compare(base[5],VV[11])>=0)){
  878.     goto T366;}
  879.     goto T365;
  880. T366:;
  881.     if(!(number_compare(base[5],VV[15])<0)){
  882.     goto T371;}
  883.     base[7]= car(base[3]);
  884.     base[8]= base[5];
  885.     vs_top=(vs_base=base+7)+2;
  886.     siLpackage_internal();
  887.     vs_top=sup;
  888.     base[6]= vs_base[0];
  889.     goto T369;
  890. T371:;
  891.     base[7]= car(base[3]);
  892.     base[8]= number_minus(base[5],VV[15]);
  893.     vs_top=(vs_base=base+7)+2;
  894.     siLpackage_external();
  895.     vs_top=sup;
  896.     base[6]= vs_base[0];
  897. T369:;
  898. T363:;
  899.     if((base[6])!=Cnil){
  900.     goto T377;}
  901.     goto T364;
  902. T377:;
  903.     base[4]= car(base[6]);
  904.     base[7]= base[0];
  905.     base[8]= coerce_to_string(base[4]);
  906.     vs_top=(vs_base=base+7)+2;
  907.     L7();
  908.     vs_top=sup;
  909.     if((vs_base[0])==Cnil){
  910.     goto T382;}
  911.     base[2]= make_cons(base[4],base[2]);
  912. T382:;
  913.     base[6]= cdr(base[6]);
  914.     goto T363;
  915. T364:;
  916.     base[5]= one_plus(base[5]);
  917.     goto T362;
  918. T365:;
  919.     base[3]= cdr(base[3]);
  920.     base[5]= VV[29];
  921.     goto T354;
  922. T252:;
  923.     vs_top=(vs_base=base+2)+1;
  924.     return;
  925. }
  926.